#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

//当多行编辑框的文本内容发送变化是，触发信号textChanged
void Widget::on_textEdit_textChanged()
{
    //打印出文本内容
    qDebug() << "textChanged: " << ui->textEdit->toPlainText();
}

//光标移动时，触发信号cursorPositionChanged
void Widget::on_textEdit_cursorPositionChanged()
{
    //获取光标信息
    const QTextCursor &cursor = ui->textEdit->textCursor();
    //打印光标位于第几个字符后
    qDebug() << "cursorPositionChanged: " << cursor.position();
}

//当选中范围发送变化时，触发信号selectionChanged
void Widget::on_textEdit_selectionChanged()
{
    const QTextCursor &cursor = ui->textEdit->textCursor();
    //打印选中的字符
    qDebug() << "selectionChanged: " << cursor.selectedText();
}

//当用户执行了一个可以被撤销的操作后
//即用户对文本进行了修改（如插入、删除文本），然后撤销操作变为可用时，会触发undoAvailable信号。
//此信号被发射每当撤消操作变为可用 ( available 为 True) 或不可用 ( available 为 false)
void Widget::on_textEdit_undoAvailable(bool b)
{
   qDebug() << "undoAvailable: " << b;
}

//此信号被发射，每当重做操作变为可用时 ( available 为 True) 或不可用 ( available 为 false)。
void Widget::on_textEdit_redoAvailable(bool b)
{
   qDebug() << "redoAvailable: " << b;
}

//⽂本被选中/取消选中时触发 是否可以复制
void Widget::on_textEdit_copyAvailable(bool b)
{
   qDebug() << "copyAvailable: " << b;
}
